1. Field of the Invention
The present invention relates to a data synchronization method. More particularly, the present invention relates to a method for synchronizing data among multiple devices supporting a Synchronization Markup Language (SyncML) protocol.
2. Description of the Related Art
With the advance of wireless communication technologies and an increase in popularity of mobile devices, various mobile services are developed and provided. Mobile users are not always connected to a network and the network stored data. Therefore, mobile users retrieve data from the network and store the data on the mobile device, where a local copy of the data can be accessed and manipulated. Periodically, users connect to the network to send local changes to a networked data repository and download updates made to the networked data while the mobile devices are disconnected to maintain data synchronization. Data synchronization is the process of making two sets of data become identical to apply the modification of one set of data to the other set of data.
Today, a variety of non-interoperable data synchronization technologies are offered, each connecting data from a few types of data repositories to a few devices. That is, most data synchronization technologies use different communication protocols over the network. Such proliferation of non-interoperable synchronization technologies restricts users' data accessibility and limits the delivery of mobile data services. For this reason, there has been a need for a standardized common data synchronization protocol.
SyncML (Synchronization Markup Language) is a platform-independent information synchronization standard protocol supported by major technology companies. SyncML is an Extensible Markup Language (XML) based open standard protocol for universal synchronization of data between devices, networks and platforms. The SyncML is also one of the most important parts in the development of 3rd Generation (3G) mobile communication systems. SyncML may be used for synchronizing data between computers and between mobile devices as well as between some type of mobile device and a computer.
SyncML may be implemented in the form of a client/server-oriented protocol. In this case, the client may be a mobile device such as a portable computer, a mobile phone and a Personal Digital Assistant (PDA) that are generating data to be synchronized. When generating specific data, the client transmits a synchronization-related message to the server. The server may be a desktop computer or a network server which receives the data from the client and implements synchronization logic.
Here, the data synchronization is a technology to ensure data integrity between two devices. The synchronization technology allows the two devices to maintain identically shared data by applying the modification to the other device, even when a set of data stored to one of the devices is changed (added, modified and deleted). Such synchronization technologies have been developed to synchronize the data between two devices. Accordingly, when more than two devices' data are required to be synchronized, conventional synchronization technologies may incur an infinite synchronization loop problem.
Assuming that three devices A, B and C are involved in data synchronization and device A detects the addition of data “G”, the device A transmits the modified data “G” to device B and device C. Upon receipt of the data “G”, the device B transmits the data “G” to the device C, and the device C transmits the data “G” to the device B. If the data “G” is received again during the synchronization with the data “G” received from the device A, the device B and the device C considers the data “G” is modified after its addition and records the modification of the data “G” such that the modification of the data “G” is applied at the next synchronization process. Accordingly, whenever the devices are connected to each other, the devices attempt to update the data “G” repeatedly.
Furthermore in the conventional data synchronization methods, when a large file is required to be synchronized, a data comparison process is performed after the large file is completely received, thereby increasing synchronization latency and network traffic load in addition to the infinite synchronization loop problem.
Therefore, a need exists for a data synchronization method for synchronizing data efficiently between multiple devices and to reduce data transmission amount.